package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.SynchronousQueue;

/** 集合的排序----字符串排序 */
public class SortString {
    public static void main(String[] args) {
      List<String > list=new ArrayList<>();
      list.add("王喜聪");
      list.add("传奇老师");
      list.add("国斌老师");
        System.out.println("原始数据为："+list);

        Collections.sort(list,  (o1,  o2)->o1.length()-o2.length());//升序);
            /*
            compare()用于定义o1和o2比较到校的规则，并且返回值表达大小关系
            返回值的、实现的要求------记下面结论
            1）如果返回值》0，则表达的是o1>o2
            2）如果返回值<0，则表达的是o1<o2
            3）如果返回值=0，则表达的是o1=o2
            结论：
            1）前面-后面的为升序
            2）后面-前面的为降序
             */

        System.out.println("排序后的数据为："+list);






        /*
        List<String> list=new ArrayList<>();
        list.add("jack");
        list.add("rose");
        list.add("tom");
        list.add("black");
        list.add("blace");
        list.add("Kobe");
        System.out.println("list原始数据"+list);

        //对英文字符串排序时，会按首字母的ASCII码来排
        //若首字母相同，则比较第二个字母的ASCII码，以此类推
        Collections.sort(list);
        System.out.println("排序后的list："+list);

         */
    }
}
